/**
 * 
 */
package core.descriptors;

import java.io.Serializable;

import core.enums.TaskTYPE;

/**
 * La classe TaskDescriptor ingloba le informazioni essenziali: ID, Tipo di Task, Comando, Link File
 * @author Vincenzo Merlo, Scuderi Giovanni Luca, Paolo Giuffrida
 */
public class TaskDescriptor implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 7772722279577054592L;
    /**
     *
     */
    private int ID;
    private TaskTYPE type;
    private String command;
    private String link;

    /**
     *
     */
    public TaskDescriptor() {
    }

    /**
     * Ritorna l'ID del Task
     * @return id del Task
     */
    public int getID() {
        return ID;
    }
    /*
    - * TODO: Manca gestione dell'ID e check dell'ID if ID == 0 ... puoi cambiarlo altrimenti no
     */

    /**
     * Setta l'ID del Task
     * @param ID del Task da settare
     */
    public void setID(int ID) {
        this.ID = ID;
    }

    /**
     * Ritorna il comando del Task
     * @return command del Task
     */
    public String getCommand() {
        return command;
    }

    /**
     * Setta il comando del Task
     * @param command del Task da settare
     */
    public void setCommand(String command) {
        this.command = command;
    }

    /**
     * Ritorna il link (path) del Task
     * @return link (path) del Task
     */
    public String getLink() {
        return link;
    }

    /**
     * Setta il link (path) del Task
     * @param link (path) del Task da settare
     */
    public void setLink(String link) {
        this.link = link;
    }

    /**
     * Ritorna il tipo del Task
     * @return type del task
     */
    public TaskTYPE getType() {
        return type;
    }

    /**
     * Setta il tipo del Task
     * @param type del Task da settare
     */
    public void setType(TaskTYPE type) {
        this.type = type;
    }

    /**
     *
     * @return string
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(TaskDescriptor.class.getSimpleName());
        sb.append("\n\tID: ").append(this.getID()).append("\n\tType: ").append(this.getType()).append("\n\tLynk: ").append(this.getLink()).append("\n\tCommand: ").append(this.getCommand());

        return sb.toString();
    }
}
